package com.kt.learn1

/**
 * Kotlin 控制结构示例
 * 包括 if 表达式、when 表达式、for 循环、while 循环和 do-while 循环
 */

fun main() {
    // if 表达式
    chapter1IfExpression()

    // when 表达式
    chapter2WhenExpression()

    // for 循环
    chapter3ForLoop()

    // while 循环
    chapter4WhileLoop()

    // do-while 循环
    chapter5DoWhileLoop()
}

// if 表达式
fun chapter1IfExpression() {
    println("\n===== if 表达式 =====")

    val number = 10

    // if-else 语句
    if (number > 0) {
        println("$number 是正数")
    } else if (number < 0) {
        println("$number 是负数")
    } else {
        println("$number 是零")
    }

    // if 作为表达式
    val result = if (number % 2 == 0) "偶数" else "奇数"
    println("$number 是 $result")
}

// when 表达式
fun chapter2WhenExpression() {
    println("\n===== when 表达式 =====")

    val dayOfWeek = 3

    // when 语句
    when (dayOfWeek) {
        1 -> println("星期一")
        2 -> println("星期二")
        3 -> println("星期三")
        4 -> println("星期四")
        5 -> println("星期五")
        6 -> println("星期六")
        7 -> println("星期日")
        else -> println("无效的天数")
    }

    // when 作为表达式
    val dayName = when (dayOfWeek) {
        1, 2, 3, 4, 5 -> "工作日"
        6, 7 -> "周末"
        else -> "无效的天数"
    }
    println("今天是 $dayName")
}

// for 循环
fun chapter3ForLoop() {
    println("\n===== for 循环 =====")

    // 遍历数组
    val numbers = arrayOf(1, 2, 3, 4, 5)
    for (number in numbers) {
        println(number)
    }

    // 遍历范围
    println("从 1 到 5:")
    for (i in 1..5) {
        print("$i ")
    }
    println()

    println("从 5 到 1:")
    for (i in 5 downTo 1) {
        print("$i ")
    }
    println()

    println("从 1 到 5 步长 2:")
    for (i in 1..5 step 2) {
        print("$i ")
    }
    println()

    // 遍历字符串
    println("遍历字符串 'Kotlin':")
    for (char in "Kotlin") {
        print("$char ")
    }
    println()
}

// while 循环
fun chapter4WhileLoop() {
    println("\n===== while 循环 =====")

    var count = 5
    println("倒计时:")
    while (count >= 1) {
        print("$count ")
        count--
    }
    println("结束!")
}

// do-while 循环
fun chapter5DoWhileLoop() {
    println("\n===== do-while 循环 =====")

    var count = 5
    println("倒计时:")
    do {
        print("$count ")
        count--
    } while (count >= 1)
    println("结束!")
}